package BasicsType.String;

import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.text.*;

public class StringTest {

    /**
     * 字符串 占位符
     * @param args
     */
    public static void main(String[] args) {
        /**
         * 方法一
         */
        System.out.println("-----------方法一------------");
        String name = "张三";
        int age = 16;
        String str1 = "我叫%s，年龄%d";
        String context = String.format(str1, name, age);
        System.out.println("context: " + context);


        /**
         * 方法二
         */
        System.out.println("----------方法二-------------");
        String st2 = "我叫{0}，年龄{1}";
        String context2 = MessageFormat.format(st2, name, age);
        System.out.println("context2: " + context2);


        /**
         * 方法三
         * 需引用 commons-lang、commons-text jar包
         */
        System.out.println("------------方法三-----------");
        String template = "${userName}您好，欢迎使用${system}，您的验证码是：${code}，若非本人操作，请忽略！";
 
        // 占位符对应的值
        Map<String,String> valueMap = new HashMap<>();
        valueMap.put("userName","阿杰");
        valueMap.put("system","查询系统");
        valueMap.put("code","666666");
        StringSubstitutor sub = new StringSubstitutor(valueMap);

        String context3 = sub.replace(template);
        System.out.println("context3: " +context3);
    }
}
